package com.lambda.test02;
/*
1.首先存在一个接口（StringHandler）
 2.在该接口中存在一个抽象方法（printMessage），该方法是有参数无返回值
 3.在测试类（StringHandlerDemo）中存在一个方法（useStringHandler）
              方法的的参数是StringHandler类型的
              在方法内部调用了StringHandler的printMessage方法
 */
public class StringHandlerDemo {
    public static void main(String[] args) {
        //匿名内部类
        useStringHandler(new StringHandler() {
            @Override
            public void printMessage(String message) {
                System.out.println("匿名内部类收到了消息:"+message);
            }
        });
        //lamdba
        useStringHandler((String message)->{
            System.out.println("lambda表达式收到了消息:"+message);
        });
        // () 类型  {} ; () 当方法有且仅有一个参数的时候() 可以省
        //任何时候参数的类型都可以省略  要省一起省
        useStringHandler(message -> System.out.println("匿名内部类收到了消息:"+message));
    }
    public static  void useStringHandler(StringHandler handler){
        handler.printMessage("我是信息");
    }

}
interface StringHandler{
    void printMessage(String message);
}